import 'package:flutter_test/flutter_test.dart';
import 'package:flowplan_app/core/offline/offline_mode_manager.dart';

void main() {
  group('离线模式管理器测试', () {
    late OfflineModeManager offlineModeManager;

    setUp(() {
      offlineModeManager = OfflineModeManager();
    });

    tearDown(() {
      offlineModeManager.dispose();
    });

    test('离线模式管理器实例化测试', () {
      expect(offlineModeManager, isNotNull);
      expect(
          offlineModeManager.currentStatus, equals(OfflineModeStatus.online));
    });

    test('强制切换到离线模式', () {
      offlineModeManager.forceOfflineMode();
      expect(
          offlineModeManager.currentStatus, equals(OfflineModeStatus.offline));
    });

    test('强制切换到在线模式', () {
      offlineModeManager.forceOfflineMode();
      expect(
          offlineModeManager.currentStatus, equals(OfflineModeStatus.offline));

      // 注意：在测试环境中，我们无法真正测试网络连接状态
      // 这个测试主要用于验证方法调用不会出错
      offlineModeManager.forceOnlineMode();
    });

    test('检查是否可以执行离线操作', () {
      // 默认情况下应该可以执行离线操作（在线模式下也可以）
      expect(offlineModeManager.canPerformOfflineOperation(), isTrue);

      // 强制离线模式
      offlineModeManager.forceOfflineMode();
      expect(offlineModeManager.canPerformOfflineOperation(), isTrue);
    });
  });
}
